/*******************************************************************************
** 文件名称：chip.h
** 文件作用：芯片头文件，主要负责选择不同的CPU头文件
** 编写作者：TomFree <付瑞彪>
** 编写时间：2019-12-20
** 文件备注：
**
** 更新记录：
**           2019-12-20 -> 创建文件                                 <Tom Free>
**
**           1 Tab == 4 Spaces     UTF-8     ANSI C Language
*******************************************************************************/
#ifndef __CHIP_H__
#define __CHIP_H__

#ifndef CHIP_TYPE
#error 请在编译器预定义区预定义芯片类型
/* 定义用户使用的单片机类型，以ATmega后的数字作为类型编号 */
/* 如ATmega328P的类型号为328 */
/* 注意要与工程中选择的Target一致，否则会出现重定义等错误 */
/* 例如：CHIP_TYPE=48 */
#endif  /* CHIP_TYPE */

#ifndef CHIP_FOSC
#error 请在编译器预定义区预定义芯片时钟频率
/* 定义所使用的晶振时钟频率，当使用内部时钟时即振荡频率 */
/* 单位为Hz，如使用11.0592MHz的晶振其频率值为11059200ul */
/* 数字结尾的ul标示此数字为长整形无符号整数 */
/* CHIP_FOSC=8000000UL */
#endif  /* CHIP_FOSC */

/* 开关中断处理 */
#define CHIP_ENABLE_INTERRUPT()     asm("SEI")
#define CHIP_DISABLE_INTERRUPT()    asm("CLI")

/* 根据芯片型号自动选择头文件 */
#if (CHIP_TYPE == 8)
#include "iom8.h"
#elif (CHIP_TYPE == 48)
#include "iom48.h"
#elif (CHIP_TYPE == 88)
#include "iom88.h"
#elif (CHIP_TYPE == 168)
#include "iom168.h"
#elif (CHIP_TYPE == 328)
#include "iom328.h"
#elif (CHIP_TYPE == 16)
#include "iom16.h"
#elif (CHIP_TYPE == 32)
#include "iom32.h"
#elif (CHIP_TYPE == 64)
#include "iom64.h"
#elif (CHIP_TYPE == 128)
#include "iom128.h"
//Add your MCU type here!
//#elif (CHIP_TYPE == xxx)
//#include "iomxxx.h"
#endif  /* CHIP_TYPE == 8 */

#endif  /* __CHIP_H__ */
